package com.bicon.botu.mall.goods.service;

import java.math.BigDecimal;

/**
 * <p>
 * <p>
 * </p>
 *
 * @author tao.zeng.
 * @since 2018/3/16.
 */
public interface IProductServiceV2 {

    // region 添加商品

    // 1. 添加商品 通用信息
    // 2. 添加商品 详细描述
    // 3. 添加商品 商品属性
    // 4. 添加商品 商品相册
    // 5. 添加商品 其他信息
    // 6. 添加商品 关联地区
    // 7. 添加商品 启用定制

    // endregion

    /**
     * 添加商品信息
     *
     * @param userId           用户id
     * @param saveOrUpdate     操作类型 1 保存 2 修改
     * @param productId        商品id
     * @param productCode      商品编号
     * @param productType      商品类型  1 定制商品 2 非定制商品
     * @param classify         分类Id
     * @param brandId          品牌Id
     * @param supplier         供货商
     * @param buyingPrice      进货价
     * @param productName      商品名
     * @param description      描述
     * @param details          详细描述 <p>描述</p>
     * @param productAttr      商品属性 sku 信息 json
     *                         [{"productNum":"0","price":"0","picture":"http://192.168.10.34:1111/BOTU/mall/productImage/n/20180316/9160f9a6bcb34d45b2447510bfd9f697.png","productArrId1":"4b5b525aa3514ac496bcf429d0776e13","productArrId2":"885412ea32dd4f0db3da64dbee8a3dff","skuName":"颜色:红,尺码:l"}]
     * @param pictureStr       图片地址json
     *                         [{"productUrl":"http://192.168.10.34:1111/BOTU/mall/productImage/n/20180316/20525aac4f4148e08dfc2d607a947aef.png"}]
     * @param weight           重量
     * @param volume           体积
     * @param invoiceType      发票类型（0无需发票，1普通发票，2电子发票）
     * @param noticeNum        警告数量
     * @param upShelves        是否上架
     * @param isProduct        是否作为商品
     * @param isFreeFreight    是否免运费
     * @param logisticsType    物流商
     * @param region           销售区域
     * @param posterPicture    海报图片
     * @param isOnBefore       是否启用前身文字
     * @param isOnAfter        是否启用后身文字定义
     * @param beforeText       前身文字数量
     * @param afterText        后身文字数量
     * @param isEnableTrace    是否启用微量元素自定义
     * @param trancePlanIdJson 定制方案id
     * @param planCode         定制方案名称
     * @param suitCrowd        适用人群
     * @param element          元素列表
     * @return
     */
    boolean addProduct(
            String userId, String saveOrUpdate, String productId, String productCode,
            String productType, String classify, String brandId, String supplier, BigDecimal buyingPrice, String productName, String description,
            String details,
            String productAttr,
            String pictureStr,
            Double weight, Double volume, Integer invoiceType, Integer noticeNum, String upShelves, String isProduct, String isFreeFreight, String logisticsType,
            String region,
            String posterPicture, String isOnBefore, String isOnAfter, Integer beforeText, Integer afterText, String isEnableTrace, String trancePlanIdJson,
            String planCode, String suitCrowd, String element);
}
